package cn.core.data.service.intf;

import cn.core.data.eo.DbTable;
import cn.core.data.qo.DbTableQO;
import cn.core.data.vo.DbTableVO;
import cn.core.tool.util.Paging;
import cn.core.tool.util.Param;

import java.util.Collection;

/**
 * 数据库表 服务接口
 */
public interface IDbTableService {

  /**
   * 数据库表 >>> 保存
   */
  public DbTableVO save(DbTableVO eo) throws Exception;

  /**
   * 数据库表 >>> 批量保存
   */
  public Collection<DbTable> saveBatch(Collection<DbTable> eos) throws Exception;

  /**
   * 数据库表 >>> 修改
   */
  public DbTableVO update(DbTableVO eo) throws Exception;

  /**
   * 数据库表 >>> 批量修改
   */
  public Collection<DbTable> updateBatch(Collection<DbTable> eos) throws Exception;

  /**
   * 数据库表 >>> 删除
   */
  public void remove(DbTable eo) throws Exception;

  /**
   * 数据库表 >>> 批量删除
   */
  public void removeBatch(Collection<DbTable> eos) throws Exception;

  /**
   * 数据库表 >>> 数据量
   */
  public Long count(DbTableQO qo) throws Exception;

  /**
   * 数据库表 >>> 主键查询
   */
  public DbTable pk(DbTableQO qo) throws Exception;

  /**
   * 数据库表 >>> 查询
   */
  public Collection<DbTable> query(DbTableQO qo) throws Exception;

  /**
   * 数据库表 >>> 分页
   */
  public Paging<DbTable> paging(Param<DbTableQO> param) throws Exception;

  /**
   * 数据库表 >>> 业务数据量
   */
  public Long countVo(DbTableQO qo) throws Exception;

  /**
   * 数据库表 >>> 业务主键查询
   */
  public DbTableVO pkVo(DbTableQO qo) throws Exception;

  /**
   * 数据库表 >>> 业务查询
   */
  public Collection<DbTableVO> queryVo(DbTableQO qo) throws Exception;

  /**
   * 数据库表 >>> 业务分页
   */
  public Paging<DbTableVO> pagingVo(Param<DbTableQO> param) throws Exception;

}
